package routes

import (
	"go-jhb-admin-api/app/controllers"
	"go-jhb-admin-api/app/middleware"
	"go-jhb-admin-api/app/utils"

	"github.com/gin-gonic/gin"
)

func SetupRouter() *gin.Engine {

	r := gin.Default()

	// 加载全局跨域中间件
	r.Use(middleware.CORSMiddleware())

	// 设置一个自定义的 404 页面
	r.NoRoute(func(c *gin.Context) {
		utils.ErrorResponse(c, nil, "Error 404")
	})

	admin := r.Group("/admin")
	{
		// 无需鉴权
		admin.POST("/public/login", controllers.Login)

		// 需要鉴权的路由组
		authGroup := admin.Group("/")
		authGroup.Use(middleware.AuthMiddleware()) // 鉴权中间件
		{
			authGroup.GET("/index", controllers.Index)
			authGroup.GET("/userinfo", controllers.Userinfo)

			// 获取管理员列表
			authGroup.GET("/admin/getlist", controllers.GetAdminList)
			// 获取某个管理员详情
			authGroup.GET("/admin/get_detail_by_id", controllers.GetAdminById)
			// 添加或编辑管理员
			authGroup.POST("/admin/add_or_upd_admin", controllers.AddOrUpdateAdmin)
			// 删除管理员
			authGroup.GET("/admin/del_admin", controllers.DeleteAdmin)

			authGroup.GET("/jhb/get_friends_circle_detail", controllers.GetFriendsCircleDetail)

		}
	}

	return r
}
